The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventor(s), to the extent the work is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
Many data storage systems (e.g., disk drives) employ some type of coding system in which data being stored is combined, or encoded, with redundant information to form a codeword that meets a priori established constraints. Codewords that are received or retrieved from memories (e.g., read from a hard disk drive sector) are checked against the constraints to determine if the codeword has been correctly read. If the codeword does not meet the constraints, several techniques may be used to attempt to correct the codeword. One of the popular techniques is to use codes that are amenable to iterative decoding approaches, and correct the codeword via iterative decoding techniques.
FIG. 1 illustrates an example of a coding system that includes an encoder 50 and a decoding system 100. The coding system encodes user data with the encoder 50 to form one or more codewords. The codewords are sent to a write head that writes the codeword to physical memory. The decoding system 100 is a concatenated decoder that includes an inner decoding block 110 and an outer decoding block 150. The concatenated decoding system 100 receives a digital signal from a read head and processes the signal to output decoded user data.
Both decoding blocks 110, 150 may calculate “soft information” about the values of the bits in a codeword. The soft information communicates a likely value of a bit as well as a confidence or likelihood that the value is correct. One example of soft information is a Log-Likelihood Ratio (LLR). The LLR for a given bit is the log of the quotient of the probability that the bit is zero divided by the probability the bit is one. If the LLR is negative, the bit is more likely a one and if the LLR is positive, the bit is more likely a zero.
The soft information from the inner decoding block 110 is fed to the outer decoding block 150. The outer decoding block 150 processes the soft information from the inner decoding block 110 to attempt to decode the codeword. The soft information from the outer decoding block 150 is typically fed back to the inner decoding block 110 and the decoding process continues until the LLRs reach a threshold level of confidence or until a predetermined number of iterations has been performed.
Coding systems with intrinsic channel memory may include an inner decoding block 110 that is a channel detector or equalizer and an outer decoding block 150 that is a soft decoder that uses an error correcting code (ECC) such as a Low Density Parity Check (LDPC) code. Examples of systems with intrinsic channel memory are data storage systems (e.g., hard drives). These systems model the channel between read/write heads acting on the data. Another example of systems with intrinsic channel memory are wireless channels used in modeling the physical channel between transmitter and receiver in the communications over wireless links.